Technical Field
Embodiments described herein relate to integrated circuits, and more particularly, to techniques for monitoring energy usage in an integrated circuit.
Description of the Related Art
Computing systems typically include one or more processors or processing cores which are configured to execute program instructions. The program instructions may be stored in one of various locations within a computing system, such as, e.g., main memory, a hard drive, a CD-ROM, and the like.
Processors include various functional blocks, each with a dedicated task. For example, a processor may include an instruction fetch unit, a memory management unit, and an arithmetic logic unit (ALU). An instruction fetch unit may prepare program instruction from a software application for execution by decoding the program instructions and checking for scheduling hazards, while arithmetic operations such as addition, subtraction, and Boolean operations (e.g., AND, OR, etc.) may be performed by an ALU. Some processors include high-speed memory (commonly referred to as “cache memories” or “caches”) used for storing frequently used instructions or data.
Each operation performed by the ALU, or other functional blocks within a processor, may have an associated energy cost, i.e., an amount of energy dissipated by the circuits in response to executing the operation. The dissipated energy may include energy consumed during the switching of outputs of logic gates from one logic state to another. Additionally, the dissipated energy may include energy consumed due to leakage currents, i.e., currents that flow through the transistors of logic gates even the when the transistors are in an “off” state.